package com.mhg.nio;


import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;

public class Demo_05 {

	public static void main(String[] args) throws IOException {
		//案例3 复制图片
		//1.创建通道 调用FileChannel open方法 打开通道
		FileChannel in = FileChannel.open(Paths.get("Koala.jpg"), StandardOpenOption.READ);//读权限
		FileChannel out = FileChannel.open(Paths.get("copy.jpg"), StandardOpenOption.CREATE,StandardOpenOption.WRITE);//创建文件 并 能写
		
		//2.创建缓冲区
		ByteBuffer bb = ByteBuffer.allocate(1024);
		//3.复制
		int len = 0;
		while((len = in.read(bb))!=-1){
			bb.flip();//在通道读取read 或者 放置put方法执行后 如果要执行 通道write 或者 get方法 必须先调用flip()将position位置归位
			out.write(bb);
			bb.clear();
		}
		//4.关闭管道
		in.close();
		out.close();
		System.out.println("完毕");
	}

}
